<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //判断数组是否为对称数组，对称数组形式如：[a, b, c, b, a]、[a, b, c, c, b, a]
        //王中王、手拉手、面对面、上海自来水来自海上

        var arr1 = ['a', 'b', 'c', 'd', 'c', 'b', 'a'];
        var arr2 = ['a', 'b', 'c', 'c', 'b', 'a'];
        var arr3 = ['a', 'b', 'c', 'a', 'b', 'c'];


        // 一般方法，效率不高
        // function symmetry(arr) {
        //     var newArr = [];
        //     for (var i = arr.length - 1; i >= 0; i--) {
        //         newArr.push(arr[i]);
        //     }

        //     for (var i = 0; i < newArr.length; i++) {
        //         if (newArr[i] != arr[i]) {
        //             return false;
        //         }
        //     }

        //     return true;
        // }



        // symmetry 对称的意思， 此方法比较简单，但其实可以循环一半
        function symmetry(arr) {
            var start = 0;
            var end = arr.length - 1;
            for (var i = 0; i < arr.length; i++) {
				/* if(arr[start]!=arr[end]){
					return false;
				}
				start++;
				end--; */
                if (arr[i] != arr[arr.length - 1 - i]) {
                    return false;
                }
            }
            return true;
        }




        // 循环一半，通过while控制
        function symmetry(arr) {
            var start = 0;
            var end = arr.length - 1;
            while (start < end) {
                if (arr[start] != arr[end]) {
                    return false;
                }
                start++;
                end--;
            }
            return true;
        }


        console.log(symmetry(arr1), symmetry(arr2), symmetry(arr3));	// true true false

    </script>
</body>
</html>